package com.ly.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ly.common.core.bean.R;
import com.ly.common.core.bean.dto.CommonBatchUpdateDTO;
import com.ly.system.system.bean.entity.SysTenant;

/**
 * 租户service接口
 *
 * @author jeecg
 */
public interface ISysTenantService extends IService<SysTenant> {

    /**
     * 查询-id
     */
    R getId(String id);

    /**
     * 列表
     *
     * @param entity
     * @return
     */
    R getList(SysTenant entity);

    /**
     * 分页
     */
    R getPage(SysTenant entity, Page<SysTenant> page);

    /**
     * 新增
     */
    R add(SysTenant entity);

    /**
     * 修改
     */
    R edit(SysTenant entity);

    /**
     * 删除-id
     */
    R delete(String id);

    /**
     * 批量删除
     */
    R deleteBatch(String ids);

    /**
     * 批量新增或修改
     */
    R updateBatch(CommonBatchUpdateDTO<SysTenant> dto);

    /**
     * 查询用户租户-全局
     *
     * @return
     */
    R getCurrentUserTenant();

    /**
     * 回收站-租户
     *
     * @param page
     * @param sysTenant
     * @return
     */
    R getRecyclePage(Page<SysTenant> page, SysTenant sysTenant);

    /**
     * 删除租户-彻底删除
     *
     * @param ids
     */
    R deleteLogicTenant(String ids);

    /**
     * 还原租户
     *
     * @param ids
     */
    R revertLogicTenant(String ids);

    /**
     * 变更租户拥有者
     *
     * @param userId
     * @param tenantId
     */
    void changeOwenUserTenant(String userId, String tenantId);

}
